$.fn.extend({
	// piclist 图片列表， t 
	autoRoll: function(picList, t){
		// 图片数量
		var pics = picList.length;
		// 容器宽高
		var w = parseInt($(this).css("width"));
		var h = parseInt($(this).css("height"));
		// 滚动画通栏，等于所有画宽数总和
		var rollerBar = $("<div></div>");
		$(this).append(rollerBar);
		rollerBar.addClass("rollerBar");
		rollerBar.css({width: w * pics, height: h});

		// 加载图片到通栏中
		for(var i in picList){
			var p = $("<img>")
			p.attr("src", picList[i]);
			p.css({width: w, height: h});
			rollerBar.append(p);
		}
		

		// 设置小点
		var dotsLine = $("<div></div>");
		$(this).append(dotsLine);
		dotsLine.addClass("dotsLine");
		for(var i in picList){
			var p = $("<div></div>");
			p.addClass("rollDot");
			p.addClass("rollDot_" + i);
			dotsLine.append(p);
		}
		


		// 开始滚动
		var i = 0;
		$(".rollDot_0").css("background-color", "cyan");	
		var roll = setInterval(function(){
			// console.log(i)
			$(".rollDot").css("background-color", "white");
			$(".rollDot_" + i).css("background-color", "cyan");			
			rollerBar.animate({'left': (- w * i) + 'px'}, 1000);
			i ++;
			if(i == pics){ i = 0; }
		}, t)
	},

	// 根据data，填充table中的tbody部分
	// data : 表格内容数据，是一个二维数组，第一维是行数据，第二维是列数据
	// fields : 表格数据结构，以及字段名称，是一个刍键值对序列，键名为字段名，键值为表头显示名称
	// buttons : 操作按钮名称，按顺序对应callbacks中的每个函数
	// buttonsAct : 按钮操作回调，反回两个参数，按钮名称和id
	// callbacks ： 操作回调函数，每个按钮对应的动作监听执行函数
	showtable: function(data, fields, buttons, buttonsAct, callbacks){
		// var len = data[0].length;
		// 表头部分
		if($(this).children("thead").length == 0){ // 表头部分不存在，是绘制表头
			var thead = $("<thead></thead>");
			$(this).append(thead);
			var tr = $("<tr></tr>");
			thead.append(tr);
			for(var i in fields){
				var th = $("<th></th>");
				th.html(fields[i]);
				th.attr("fields", i)
				tr.append(th);
			}
			if(buttons && JSON.stringify(buttons) != '{}'){
				var th = $("<th></th>");
				th.html("操作");
				tr.append(th);
			}
		}
		
		// 表体部分
		var tbody = {};
		if($(this).children("tbody").length == 0){
			tbody = $("<tbody></tbody>")
			$(this).append(tbody);
		}else{
			tbody = $(this).children("tbody");
			tbody.html("");
		}
		
		for(var i in data){
			var x = data[i]
			var tr = $("<tr></tr>");
			for (var j in fields){
				var td = $("<td></td>");
				td.html(x[j]);
				tr.append(td);
			}
			if(buttons && JSON.stringify(buttons) != '{}'){
				var td = $("<td></td>");
				td.addClass("act");
				td.attr("id", x.id)
				for(var k in buttons){
					var button = ($("<button></button>"));
					button.html(buttons[k]);
					button.addClass("btn_" + k);
					button.attr("action", k)
					td.append(button);
				}
				tr.append(td);
			}
			tbody.append(tr);
		}

		if(buttons && JSON.stringify(buttons) != '{}'){
			$(this).find("td>button").click(function(){
				var id = $(this).parent("td").attr("id");
				var action = $(this).attr("action")
				buttonsAct(action, id);
			})
		}

		// 按钮控制回调
		callbacks();
		
	},


	// 按照由keyvalue提供的键值对，向当前对像（select对像）追加 option
	addOptions : function(keyvalue){
		for(var i in keyvalue){
			var opt = $("<option></option>");
			opt.val(i);
			opt.html(keyvalue[i]);
			$(this).append(opt);
		}
	}
})


